﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Text.RegularExpressions;

namespace RegTest
{
    class Program
    {
        static void Main(string[] args)
        {
            TestInfo(new SyncResult()
            {
                FSellerMessage =
                    "[发票抬头:左晓春][公司名称：南京宝銮信息科技有限公司，公司地址：河西万达，固定号码：&hellip;&hellip;..，开户行：&hellip;&hellip;..，开户行账号：&hellip;&hellip;..，税号：&hellip;&hellip;..，] [延期发货：7月7号][好评返现：20][电梯：无][潜在客户：是][赠品：双立人刀具一套][型号：kingdee123][发票邮寄地址：翠岛花城][罗金龙]"
            });

            //TestInfo(new SyncResult()
            //{
            //    FSellerMessage =
            //       "客服：郎春平，电梯：有，潜在客户：否，晒图返现：20，赠品：保鲜盒，纸质发票，发票抬头：奇跃电力设备有限公司，"
            //});

            //TestInfo(new SyncResult()
            //{
            //    FSellerMessage =
            //       "HS244500W HS244500W HS244500W，客服：张凯，电梯：有，潜在客户：否，公司名称：杭州及彩贸易有限公司,公司地址：杭州市滨江区浦沿街道滨文路426号岩大房文苑大厦11楼1184室,固定号码：0571-86539223,开户行：兴业银行股份有限公司杭州滨江支行,开户行账号：356940100100144034,税号：91330108MA27WNKL30，发票邮寄地址：浙江省杭州市西湖区古墩路金桂大厦1511王邓娜18767191839，纸质发票，延期发货：急发 尽量顺丰，"
            //});

            //TestInfo(new SyncResult()
            //{
            //    FSellerMessage = "SC73M810TI   SC73M810TI   SC73M810TI ，赠品：保鲜盒*3，客服：徐同，电梯：无1，潜在客户：否，公司名称：常州万格尔商贸有限公司， 公司地址：武进区湖塘镇星河城市花园二区A52， 固定号码：0519-85788889， 开户行：江苏江南农村商业银行股份有限公司常州武进支行，开户行账号：86001011012010000008079， 税号：913204120893074386， 纸质发票， "
            //});
            //TestInfo(new SyncResult()
            //{
            //    FSellerMessage = "HS244500W，客服：张凯，电梯：有，潜在客户：否，公司名称：杭州及彩贸易有限公司,公司地址：杭州市滨江区浦沿街道滨文路426号岩大房文苑大厦11楼1184室,固定号码：0571-86539223,开户行：兴业银行股份有限公司杭州滨江支行,开户行账号：356940100100144034,税号：91330108MA27WNKL30，发票邮寄地址：浙江省杭州市西湖区古墩路金桂大厦1511王邓娜18767191839，纸质发票，延期发货：急发 尽量顺丰 两个地址，"
            //});
            Console.ReadKey();
        }

        static void TestInfo(SyncResult syncResult)
        {

            var sellerMsg = ConvertToSellerMsg(syncResult);
            Console.WriteLine("-------------------------------------------------");
            Console.WriteLine("开票信息：{0}", sellerMsg.FKpInfo);
            Console.WriteLine("延期发货：{0}", sellerMsg.FYqfh);
            Console.WriteLine("好评返现：{0}", sellerMsg.FHpfx);
            Console.WriteLine("电梯：{0}", sellerMsg.FDt);
            Console.WriteLine("潜在客户：{0}", sellerMsg.FQzkh);
            Console.WriteLine("赠品：{0}", sellerMsg.FZp);
            Console.WriteLine("型号：{0}", sellerMsg.FXhbg);
            Console.WriteLine("发票邮寄地址：{0}", sellerMsg.Ffpyjdz);
            Console.WriteLine("**************************************************");
        }

        static SellerMsg ConvertToSellerMsg(SyncResult syncResult)
        {
            var sellerMsg = new SellerMsg()
            {
                FKpInfo = "",
                FDt = "",
                Ffpyjdz = "",
                FHpfx = "",
                FQzkh = "",
                FXhbg = "",
                FYqfh = "",
                FZp = ""
            };
            // 开票信息
            /*
             发票抬头：
             -----------------
             公司名称：
             公司地址：
             固定号码：
             开户行：
             开户行账号：
             税号：
             */
            var rule = @"发票抬头(：|:)((\w)+)";
            var m = Regex.Match(syncResult.FSellerMessage, rule);
            if (m.Success)
            {
                sellerMsg.FKpInfo = m.Groups[2].Value;
            }

            rule = @"公司名称(：|:)[\s\S]+?]";
            m = Regex.Match(syncResult.FSellerMessage, rule);
            if (m.Success)
            {
                sellerMsg.FKpInfo += m.Value.Trim(']');
            }
            // 延期发货
            rule = @"延期发货(：|:)((\w)+)";
            m = Regex.Match(syncResult.FSellerMessage, rule);
            if (m.Success)
            {
                sellerMsg.FYqfh = m.Groups[2].Value;
            }
            //好评返现
            rule = @"好评返现(：|:)((\w)+)";
            m = Regex.Match(syncResult.FSellerMessage, rule);
            if (m.Success)
            {
                sellerMsg.FHpfx = m.Groups[2].Value;
            }
            //电梯
            rule = @"电梯(：|:)((\w)+)";
            m = Regex.Match(syncResult.FSellerMessage, rule);
            if (m.Success)
            {
                sellerMsg.FDt = m.Groups[2].Value;
            }
            //潜在客户
            rule = @"潜在客户(：|:)((\w)+)";
            m = Regex.Match(syncResult.FSellerMessage, rule);
            if (m.Success)
            {
                sellerMsg.FQzkh = m.Groups[2].Value;
            }
            //赠品
            rule = @"赠品(：|:)((\w)+)";
            m = Regex.Match(syncResult.FSellerMessage, rule);
            if (m.Success)
            {
                sellerMsg.FZp = m.Groups[2].Value;
            }
            //型号变更
            rule = @"型号(：|:)((\w)+)";
            m = Regex.Match(syncResult.FSellerMessage, rule);
            if (m.Success)
            {
                sellerMsg.FXhbg = m.Groups[2].Value;
            }

            rule = @"发票邮寄地址(：|:)((\w)+)";
            m = Regex.Match(syncResult.FSellerMessage, rule);
            if (m.Success)
            {
                sellerMsg.Ffpyjdz = m.Groups[2].Value;
            }
            return sellerMsg;
        }

    }
}
